package com.software.room.dao;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;

import com.software.room.entity.UserInfo;

import java.util.List;

/**
 * 告诉room  这是一个dao， 可以进行增删改查的操作
 */
@Dao
public interface UserInfoDao {

    /**
     * 插入数据，可以批量插入
     * @param userInfo
     */
    @Insert
    void insert(UserInfo... userInfo);

    /**
     * 用类名来代替表名
     * @return
     */
    @Query("SELECT * FROM UserInfo")
    List<UserInfo> queryAll();

    @Query("SELECT * FROM UserInfo WHERE id = :id")
    UserInfo queryById(Integer id);

    // 默认以主键为条件进行的修改
    @Update
    void update(UserInfo userInfo);

    @Delete
    void delete(UserInfo userInfo);

    // 带参数的query是执行sql语句的
    @Query("DELETE FROM UserInfo")
    void deleteAll();
}
